Computer applications are ubiquitous in the daily lives of many. Rarely does an hour pass without interacting with at least one computer program on at least one device. That device may be your phone, computer, television, automobile, bank machine, etc. An issue with these applications, though, is that they lack scalability of features. The companies developing the programs want to deliver more features to the users (or have third parties deliver those additional features), and the users of the programs want to receive more features. The issue is, however, that including all features in a program initially can be prohibitive in terms of application size (e.g., megabytes or gigabytes of memory needed) and application adaptability (for later-developed objects that could run with the application). One solution would be to deliver new or additional features after a program has been installed would be to allow for JavaScript objects to be run in the application, and to deliver new features as JavaScript objects. This approach presents its own challenges. For example, with this approach new JavaScript objects running within the application do not run natively, but instead run in a JavaScript Core (or other JavaScript execution environment) within the application and are therefore inefficient (e.g., in terms of computing power) and limited (e.g., to commands available in the JavaScript Core).
The techniques described herein address those issues.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.